package com.ruoyi.usermanage.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 学生用户管理对象 user
 * 
 * @author atzxc
 * @date 2024-04-13
 */
public class User extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long userId;

    /** 用户微信登录后的唯一凭证 */
    @Excel(name = "用户微信登录后的唯一凭证")
    private String openid;

    /** 用户手机号，从微信端获取，也可注册后填入（唯一凭证） */
    @Excel(name = "用户手机号，从微信端获取，也可注册后填入", readConverterExp = "唯=一凭证")
    private Long phoneNumber;

    /** 用户昵称，一般从微信获取 */
    @Excel(name = "用户昵称，一般从微信获取")
    private String username;

    /** 注册登录需密码，从微信获取账号，不需要密码 */
    @Excel(name = "注册登录需密码，从微信获取账号，不需要密码")
    private String password;

    /** 用户姓名，用于实名认证 */
    @Excel(name = "用户姓名，用于实名认证")
    private String FullName;

    /** 用户性别，从微信登录端获取 */
    @Excel(name = "用户性别，从微信登录端获取")
    private Integer Gender;

    /** 注册时间，也就是用户第一次登录的时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "注册时间，也就是用户第一次登录的时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date registrationTime;

    /** 最近一次登录时间(先不用） */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最近一次登录时间(先不用）", width = 30, dateFormat = "yyyy-MM-dd")
    private Date LastLoginTime;

    /** 用户头像地址 */
    @Excel(name = "用户头像地址")
    private String avatarImage;

    /** 用户状态：正常1，禁用0，注销2 */
    @Excel(name = "用户状态：正常1，禁用0，注销2")
    private Integer userStatus;

    /** 用户余额 */
    @Excel(name = "用户余额")
    private Long balance;

    /** 是否认证：0未认证，1已认证（默认0） */
    @Excel(name = "是否认证：0未认证，1已认证", readConverterExp = "默=认0")
    private String authStatus;

    /** 用户属于哪个大学 */
    @Excel(name = "用户属于哪个大学")
    private String university;

    /** 登录方式（0为微信一键登录，1为账号密码登录） */
    @Excel(name = "登录方式", readConverterExp = "0=为微信一键登录，1为账号密码登录")
    private Integer loginMethod;

    /** 所属学校(暂时没有) */
    @Excel(name = "所属学校(暂时没有)")
    private Long universityId;

    /** 所属校区(暂时没有) */
    @Excel(name = "所属校区(暂时没有)")
    private Long campusId;

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setOpenid(String openid) 
    {
        this.openid = openid;
    }

    public String getOpenid() 
    {
        return openid;
    }
    public void setPhoneNumber(Long phoneNumber) 
    {
        this.phoneNumber = phoneNumber;
    }

    public Long getPhoneNumber() 
    {
        return phoneNumber;
    }
    public void setUsername(String username) 
    {
        this.username = username;
    }

    public String getUsername() 
    {
        return username;
    }
    public void setPassword(String password) 
    {
        this.password = password;
    }

    public String getPassword() 
    {
        return password;
    }
    public void setFullName(String FullName) 
    {
        this.FullName = FullName;
    }

    public String getFullName() 
    {
        return FullName;
    }
    public void setGender(Integer Gender) 
    {
        this.Gender = Gender;
    }

    public Integer getGender() 
    {
        return Gender;
    }
    public void setRegistrationTime(Date registrationTime) 
    {
        this.registrationTime = registrationTime;
    }

    public Date getRegistrationTime() 
    {
        return registrationTime;
    }
    public void setLastLoginTime(Date LastLoginTime) 
    {
        this.LastLoginTime = LastLoginTime;
    }

    public Date getLastLoginTime() 
    {
        return LastLoginTime;
    }
    public void setAvatarImage(String avatarImage) 
    {
        this.avatarImage = avatarImage;
    }

    public String getAvatarImage() 
    {
        return avatarImage;
    }
    public void setUserStatus(Integer userStatus) 
    {
        this.userStatus = userStatus;
    }

    public Integer getUserStatus() 
    {
        return userStatus;
    }
    public void setBalance(Long balance) 
    {
        this.balance = balance;
    }

    public Long getBalance() 
    {
        return balance;
    }
    public void setAuthStatus(String authStatus) 
    {
        this.authStatus = authStatus;
    }

    public String getAuthStatus() 
    {
        return authStatus;
    }
    public void setUniversity(String university) 
    {
        this.university = university;
    }

    public String getUniversity() 
    {
        return university;
    }
    public void setLoginMethod(Integer loginMethod) 
    {
        this.loginMethod = loginMethod;
    }

    public Integer getLoginMethod() 
    {
        return loginMethod;
    }
    public void setUniversityId(Long universityId) 
    {
        this.universityId = universityId;
    }

    public Long getUniversityId() 
    {
        return universityId;
    }
    public void setCampusId(Long campusId) 
    {
        this.campusId = campusId;
    }

    public Long getCampusId() 
    {
        return campusId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("userId", getUserId())
            .append("openid", getOpenid())
            .append("phoneNumber", getPhoneNumber())
            .append("username", getUsername())
            .append("password", getPassword())
            .append("FullName", getFullName())
            .append("Gender", getGender())
            .append("registrationTime", getRegistrationTime())
            .append("LastLoginTime", getLastLoginTime())
            .append("avatarImage", getAvatarImage())
            .append("userStatus", getUserStatus())
            .append("balance", getBalance())
            .append("authStatus", getAuthStatus())
            .append("university", getUniversity())
            .append("loginMethod", getLoginMethod())
            .append("universityId", getUniversityId())
            .append("campusId", getCampusId())
            .toString();
    }
}
